Service management apparatus for managing service information for services present in network system and apparatus for instructing service management apparatus

ABSTRACT

In a network system capable of providing various services dispersed among plural apparatuses, the invention provides a service management apparatus capable of managing service information on the services present in the network system. The service management apparatus transfers the managed service information in response to a request from an external apparatus, and also renews the service information based on the current actual quality of the service.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a network system for providing variousservices dispersed on plural apparatus, and more particularly to adirectory server for accumulating and managing information on thevarious services present on such network system and providing the clientwith information on the registered services.

2. Related Background Art

Conventionally there is being actively developed a document processingsystem of dispersed type in which apparatuses of single function forexample an input apparatus such as an image scanner, a digital camera ora facsimile receiver and an output apparatus such as a printer or afacsimile transmitter are mutually connected by a network, and which iscapable of providing the client with complex functions, obtained bycombining the functions of such single-functioned apparatus (for exampledata input function, data output function, and input and output of datastored in a secondary storage device (network attached storage)).

Also, in a so-called multi-function product (MFP), in which thefunctions of plural single-functioned apparatuses are united in a singlecasing, there is also being actively developed a document processingsystem of dispersed type capable of realizing various complex functionsby selectively combining one or some of such single functions with thoseof other apparatuses through a network.

As a programming model for facilitating the function providing over theinformation processing apparatuses dispersed in the network, there isalready well known a remote procedure call (RPC) or a dispersed objecttechnology. Such dispersed object technology is an expansion of theobject-oriented software model to a dispersed system, and enables, by aprocedure equivalent to that of calling an operation of a network nodefrom the same node, to call an operation of another network node.

Also, in document processing including document input and documentoutput, dispersed object technology is expected to achieve flexiblelinking of plural functions. Systems based on the dispersed objecttechnology and aiming also at applications other than the dispersedinformation processing such as pure calculations are being proposed, forexample, in Jini, which is an application of Java by the Sun (StanfordUniversity Network) and in CORBA (Common Object Request BrokerArchitecture & Specifications) by the OMG (Object Management Group).

If the various apparatuses for document processing connected to thenetwork can be controlled by the dispersed object technology, it willbecome easily possible to describe a flexible client applicationinterchangeably combining various apparatus providing objects based on apredetermined interface. It will also become possible to describe aclient application capable of dynamically inquiring the interface foroperating an object, or dynamically downloading a stab object (or aproxy object), for concealing the communication with a server object ina remote location for providing the actual service, therebyaccommodating a change in the control interface resulting for examplefrom the addition of the apparatuses.

In a system in which the client is dynamically bound with the dispersedservices at the execution (dynamic binding), thereby utilizing theservices of the dispersed objects, there is utilized a directory server(name server, registry server, lookup server, etc.) storing theinformation of the available services, for enabling the client to locatethe desired service. In a system in which plural services or clients aredispersed, a part of the services may become temporarily unavailablebecause of a failure of the apparatus providing the service or abreakage of the network connecting with the service. It is thereforenecessary to execute appropriate maintenance on the information of theservices registered in such directory server, thereby not introducingthe unavailable service to the client.

In a case where each service is shut down and deactivated in propermanner, the cancellation of registration may be instructed in advance tothe directory server from such service. However, such renewal of theinformation of the directory server from the registered service is notpossible in the case of a system crash or in a case where reachabilitythrough the network is lost. Also, certain apparatuses such as thedocument processing apparatus must be prepared for a situation where thepower supply is suddenly cut off by the user, and, also in such a case,the directory information based on the notice from the apparatus or theservice cannot be properly maintained.

Also, a dispersed object system such as the Jini based on Java adopts alease model, in which the client obtains the right of using variousservices during a predetermined term. For example, in a service ofregistering the service information of the client in the lookup server,the utilization of such lookup server is also leased for a certain term,and the registration is canceled unless the continuation of use isapplied for before the expiration of the lease term. In order toaccommodate such situation, the Jini system realizes the maintenance ofthe registered information in preparation for the unnotifiedcancellation of the services.

SUMMARY OF THE INVENTION

However, the above-described conventional technologies have beenassociated with the following drawbacks since the maintenance andrenewal of the information registered in the directory server is basedon the periodical lease renewal process executed by the service whichregisters the information.

More specifically, as to each service registered in the directoryserver, the client can know that such service is functioning at such alevel allowing recent lease renewal, but cannot know whether thefunction to be achieved by such service is proper in quality.

Particularly in a case where plural services of similar kinds areregistered for arbitrary selection, the client naturally wishes to judgewhich service is best in performance or in reliability, but theconventional directory server has not provided the information for suchjudgment.

Also, in the services provided for example by a document processingapparatus, the practical quality of the provided service may be affectedby a dynamic state change in the apparatus, but the conventionaldirectory server has not provided the client with a standard forselecting the optimum service among the plural services having suchcharacteristics. Such changes in quality due to a dynamic state changecan be exemplified, for example, by a color printer which is functioningas a monochromatic printer because of the exhaustion of the color tonersor color inks, or by a printer designed to be capable of printing on anA3-sized sheet and provided with a cassette for holding the A3-sizedsheets but lacking A3-sized sheets therein.

Also, in the conventional dispersed object system, the lease term isoften made relatively long, because the overhead cost for the renewalprocess of the lease term becomes relatively large if the lease term isshort, and consequently the maintenance of the registered informationrelying solely on the lease renewal is often unable to follow thedynamic state of the system.

Also, in a conventional system of a redundant configuration in which aplurality of equivalent services are provided in order to improveusability, the client has to judge the service to be used in place of afailed service and is therefore required to engage in a complexprocedure.

In consideration of the foregoing, a first object of the presentinvention is to provide a directory server capable of providing theclient not only with information of which it is notified by eachrespective service but also information indicating the level of qualityof the service objectively evaluated by the actual trial use of theservice.

The present invention also allows one to eliminate the registration ofthe service not only in the case of expiration of the lease term butalso in a case where the service is canceled without notification.

The present invention, in a system including a plurality of equivalentservices, further allows the client automatically to select a proxyservice replacing a failed service, thereby enabling the client to enjoyimproved usability by the redundant configuration without complicatingthe process of the client.

The present invention further realizes simple dispersion of loads (loadbalancing) based on the redundant configuration, thereby realizing aredundant configuration capable of responding to a practical loss in thequality of the provided service, for example by switching to a proxyservice in response to a dynamic state change of the apparatus such asexhaustion of toner or paper.

One aspect of the present invention is a service management apparatusused in a network system, comprising a storage means, a registrationmeans, a test means, an evaluation means and a renewal means. Thestorage means stores service information of services executed in thenetwork system. The registration means registers, in the storage means,service information of a certain service provided by a service apparatusby an application program, in response to a request from an externalapparatus that is to execute the service. The test means executes atrial use of the service provided by the service apparatus. In the trialuse, the test means sends data to the service by using an operation ofthe service provided by the application program, and the test meansrepeatedly executes the trial use. The evaluation means evaluates thequality of the service in response to execution of the trial use, anddetects change in quality of the service between a current trial use anda previous trial use. The renewal means deletes the registered serviceinformation from the storage means if the detected change shows that thequality of the service does not meet a predetermined reference.

Another aspect of the invention is an apparatus connected to such aservice management apparatus, comprising a storage means, a registrationmeans, a test means, an evaluation means and a deletion means. Thestorage means stores service information of services executed in thenetwork system. The registration means registers, in the storage means,service information of a certain service provided by an applicationprogram in a service apparatus, in response to a request from anexternal apparatus that is to execute the service. The test meansexecutes a trial use of a service provided by the application program inanother apparatus belonging to a same group as that of the apparatus. Inthe trial use, the service of the other apparatus is executed, and thetest means repeatedly executes the trial use. The evaluation meansevaluates the quality of the service in response to execution of thetrial use, and detects change in quality of the service between acurrent trial use and a previous trial use. The deletion means instructsthe service management apparatus to delete the service information ifthe detected change shows that the quality of the service does not meeta predetermined reference.

Still another aspect is an apparatus connected to such a servicemanagement apparatus, comprising a test means, an evaluation means and asubstitution means. The test means executes a trial use of a serviceprovided by the application program in another apparatus belonging to asame group as that of the apparatus. In the trial use, an operation ofthe service of the other apparatus is executed, and the test meansrepeatedly executes the trial use. The evaluation means evaluates thequality of the service in response to execution of the trial use, anddetects change in quality of the service between a current trial use anda previous trial use. The substitution means instructs the servicemanagement apparatus to substitute service information of the serviceprovided by the another apparatus with service information provided bythe apparatus if the detected change shows that the quality of theservice does not meet a predetermined reference.

The method of performing the steps performed by such apparatuses, andsoftware for doing so, are also aspects of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic view showing the network configuration inembodiments of the present invention;

FIG. 2 is a block diagram showing the configuration of an imageinput/output apparatus adapted to the dispersed object environment inembodiments of the present invention;

FIG. 3 is a cross-sectional view showing the configuration of a readerunit and a printer unit of the image input/output apparatus adapted tothe dispersed object environment in the embodiments of the presentinvention;

FIG. 4 is a block diagram showing the configuration of a core unit ofthe image input/output apparatus adapted to the dispersed objectenvironment in the embodiments of the present invention;

FIG. 5 is a block diagram showing the job control for an image input joband an image output job in the embodiments of the present invention;

FIG. 6 is a schematic view showing examples of the configuration ofsessions in the embodiments of the present invention;

FIG. 7 is a block diagram showing the configuration of a client computerin the embodiments of the present invention;

FIG. 8 is a block diagram showing the configuration of a lookup serverin the embodiments of the present invention;

FIGS. 9A and 9B are schematic views showing conceptually theconfiguration of a service object in first to fourth embodiments of thepresent invention;

FIG. 10 is a schematic view showing the process flow in which a unit ofperipheral equipment registers a service proxy object in the lookupserver in the first to third embodiments of the present invention;

FIG. 11 is a schematic view showing the process flow in which a unit ofperipheral equipment of the first to third embodiments of the presentinvention obtains a service proxy object from the lookup server;

FIG. 12 is a memory map showing the configuration of a management tablein the lookup server in the embodiments of the present invention;

FIG. 13 is a flow chart showing the sequence of a service evaluatingprocess executed by the lookup server of the first embodiment of thepresent invention;

FIG. 14 is a flow chart showing the sequence of a service registrationrenewing process executed by the lookup server of the first embodimentof the present invention;

FIG. 15 is a flow chart showing the sequence of a service evaluatingprocess executed by the lookup server of the second embodiment of thepresent invention;

FIG. 16 is a flow chart showing the sequence of a service evaluatingprocess executed by the lookup server of the third embodiment of thepresent invention;

FIG. 17 is a schematic view showing the software configuration of animage input apparatus adapted to an environment of two dispersed objectsconstituting a pair and mutually monitoring each other;

FIG. 18 is a flow chart showing the sequence of a service evaluatingprocess executed by an image input/output apparatus adapted to thedispersed object environment in a fourth embodiment of the presentinvention;

FIG. 19 is a flow chart showing the sequence of a service evaluatingprocess executed by an image input/output apparatus adapted to thedispersed object environment in a fifth embodiment of the presentinvention;

FIG. 20 is a flow chart showing the sequence of a response process to arequest for obtaining a service proxy object, executed by a lookupserver the fifth embodiment of the present invention;

FIG. 21 is a flow chart showing the sequence of a service evaluatingprocess executed by an image input/output apparatus adapted to thedispersed object environment in a sixth embodiment of the presentinvention; and

FIG. 22 is a flow chart showing the sequence of a service evaluatingprocess executed by an image input/output apparatus adapted to thedispersed object environment in a seventh embodiment of the presentinvention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Now the present invention will be clarified in detail by description ofthe preferred embodiments, with reference to the accompanying drawings.

Common Configuration and Function

Prior to the description of the preferred embodiments of the presentinvention, there will be explained the configuration of the system andapparatus used in common in the embodiments of the present invention andthe function of the apparatus.

FIG. 1 shows a network system in embodiments of the present invention.As shown in FIG. 1, a network 11 is connected to two image input/outputapparatuses 12-1, 12-2 adapted to a dispersed object environment such asJini of Java or CORBA, a client computer 13 and a lookup server computer14.

The dispersed object environment-adapted image input/output apparatuses12-1, 12-2 can transfer respective data through the network 11. Also,the client computer 13 can remotely control the dispersed objectenvironment-adapted image input/output apparatuses 12-1, 12-2. In thelookup server 14, there is registered a service proxy object, togetherwith attribute information thereof, required for the remote control ofthe dispersed object environment-adapted image input/output apparatuses12-1, 12-2 (hereinafter collectively represented as “12”) from theclient computer 13.

FIG. 2 shows an example of the configuration of the dispersed objectenvironment-adapted image input/output apparatus 12 shown in FIG. 1. Asshown in FIG. 2, the dispersed object environment-adapted imageinput/output apparatus 12 is provided with a reader unit 1, a printerunit 2 and an image input/output control unit 3. The reader unit 1 readsthe image of an original and outputs image data corresponding to theoriginal image to the image input/output control unit 3. The printerunit 2 records, on a recording sheet, an image corresponding to theimage data from the image input/output control unit 3. The imageinput/output control unit 3 is connected to the reader unit 1 and theprinter unit 2, and is composed of a facsimile unit 4, a storage unit 5,a computer interface unit 7, a RIP (raster image processor) unit 8, anoperation unit 9, a core unit 10, etc.

The facsimile unit 4 expands compressed image data received through atelephone line, transfers the expanded image data to the core unit 10,and also compresses image data transferred from the core unit 10 andtransmits the compressed image data through a telephone line. Thereceived or transmitted image data can be temporarily stored in a harddisk 6 connected to the storage unit 5.

The storage unit 5, connected with a hard disk 6, compresses the imagedata transferred from the core unit 10 and stores such image data in thehard disk 6 together with an ID (identification) number for searchingthe image data. Also, the storage unit 5 searches for the compressedimage data stored in the hard disk 6 based on the code data transferredthrough the core unit 10, and reads and expands the compressed imagedata once it is found, and transfers the expanded image data to the coreunit 10.

The computer interface unit 7 constitutes an interface between thenetwork 11 and the core unit 10, and executes data exchange with theclient computer 13 and other dispersed object environment-adapted imageinput/output apparatus(es) like apparatus 12.

The RIP unit 8 develops the code data (PDL: page description language)transferred from the network 11 and representing an image into imagedata that can be recorded in the printer unit 2.

The operation unit 9 is provided with a touch panel display and hardkeys (not shown), and constitutes a user interface for instructing andsetting operations to the dispersed object environment-adapted imageinput/output apparatus 12.

The core unit 10 controls, as will be explained later in more detail,the data flow among the reader unit 1, the printer unit 2, the facsimileunit 4, the storage unit 5, the computer interface unit 7, the RIP unit8 and the operation unit 9.

FIG. 3 is a cross-sectional view showing the configuration of the readerunit 1 and the printer unit 2 shown in FIG. 2. An original documentfeeder 101 of the reader unit 1 feeds the originals one by one from thetop onto a platen glass 102, and discharges the original therefrom afterthe original reading operation. When an original is conveyed onto theplaten glass 102, a lamp 103 is turned on and the movement of a scannerunit 104 is started to execute scanning exposure of the original. Thelight reflected from the original is guided by mirrors 105, 106, 107 anda lens 108 to a CCD (charge coupled device) 109, whereby the image ofthe scanned original is read by the CCD 109. Image data outputted fromthe CCD 109 are transferred, after predetermined processing, to the coreunit 3 of the image input/output control unit 3.

A laser driver 221 of the printer unit 2 drives and causes a laseremission unit 201 to emit laser light corresponding to the image datafrom the core unit 10 of the image input/output control unit 3. Thelaser light irradiates a photosensitive drum 202 to form thereon alatent image corresponding to the image information borne by the laserlight. Developer is deposited by a developing unit 203 on the latentimage on the photosensitive drum 202. A recording sheet is fed from acassette 204 or 205 to a transfer unit 206 with a timing synchronizedwith the start of laser light irradiation and the developer deposited onthe photosensitive drum 202 is transferred onto the recording sheet.

The recording sheet bearing the developer is conveyed to a fixing unit207, in which the developer is fixed to the recording sheet by heat andpressure in the fixing unit 207. After passing the fixing unit 207, therecording sheet is discharged by discharge rollers 208 to a finisher220, which sorts the recording sheets by collecting the dischargedrecording sheets in a bundle and staples thus sorted recording sheets.

When two-side recording is selected, the recording sheet is oncedischarged to the discharge rollers 208, and is then guided to are-feeding path 210 by a flapper 209 and by reversing the rotatingdirection of the discharge rollers 208. The recording sheet guided tothe re-feeding path 210 is fed again to the transfer unit 206 at theabove-described timing.

FIG. 4 shows an example of the configuration of the core unit 10 shownin FIG. 2. As shown in FIG. 4, the core unit 10 is composed of aninterface (I/F) unit 120, a data processing unit 121, an interface 122,a CPU (central processing unit) 130, a memory 124, etc. The image datafrom the reader unit 1 are transferred through the interface 122 to thedata processing unit 121, which executes image processing such as imagerotation and magnification change, and compression and expansion of theimage data, and is provided therein with a page memory (not shown)corresponding to image data of plural pages of A4/letter size. The imagedata transferred from the reader unit 1 to the data processing unit 121are temporarily stored in the page memory, then compressed andtransferred to the storage unit 5 through the interface 120.

Also, the code data (PDL) representing an image entered through thecomputer interface unit 7 are transferred through the interface 120 tothe data processing unit 120, then transferred to the RIP unit 8 fordevelopment into image data. The thus-developed image data aretransferred to the data processing unit 121 for temporary storage in theaforementioned page memory (not shown), then compressed and transferredthrough the interface 120 to the storage unit 5.

The image data from the facsimile unit 4 are transferred to the dataprocessing unit 121 for temporary storage in the aforementioned pagememory (not shown), then are compressed and transferred through theinterface 120 to the storage unit 5.

The image data from the storage unit 5 are transferred to the dataprocessing unit 121, then are expanded and temporarily stored in theaforementioned page memory (not shown), and transferred through theinterface unit 120 to the printer unit 2, the facsimile unit 4 and/orthe computer interface unit 7.

The storage unit 5 executes input and output of the image and non-imagedata through the computer interface unit 7, thereby providing anexternal apparatus with data storing function.

The image data, after entry into the data processing unit 121 andtemporary storage in the internal page memory (not shown) but prior tothe transfer to the storage unit 5, may also be transferred to theprinter unit 2, the facsimile unit 4 or the computer interface unit 7 bythe switching of an internal selector (not shown).

The CPU 123 controls the above-mentioned functions according to acontrol program stored in a memory 124 and a control command transferredfrom the operation unit 9. The memory 124 is used also as a work areafor the CPU 123.

Thus, the dispersed object environment-adapted image input/outputapparatus 12 can execute a complex process involving functions oforiginal image reading, image printing, image transmission andreception, image storage, data input into and output from computers (13,14 in FIG. 1) principally by the core unit 10 and through the dataprocessing unit 121 thereof and the storage unit 5.

In the following there will be explained, with reference to FIG. 5, thejob control in the dispersed object environment-adapted imageinput/output apparatus 12 of the present embodiment. FIG. 5 shows alogical unit of the job control. A unit of the job control is input andoutput processes for a group of image data containing plural pages.Thus, the controlled job is mainly classified as either an image inputjob or an image output job.

Image input jobs can be further classified as either an image input job411 for recording in succession the image data, read by the reader unit1, into the storage unit 5, an image input job 412 for recording insuccession the image data, developed by the RIP unit 8, into the storageunit 5, an image input job 413 for recording in succession the imagedata, received by the facsimile unit 4, into the storage unit 5, or animage input job 414 for recording in succession the image data, enteredfrom the computer interface unit 7, into the storage unit 5.

Furthermore, the dispersed object environment-adapted image input/outputapparatus 12 of the present embodiment can provide a function ofutilizing the storage unit 5 for the accumulation of non-image data, andthe image input jobs 411 and 414 can also handle non-image data.

Also, image output jobs can be classified as either an image output job401 for outputting in succession the image data, read from the storageunit 5, to the printer unit 2, an image output unit 403 for outputtingin succession the image data, read from the storage unit 5, to thefacsimile unit 4, or an image output job 404 for outputting insuccession the image data, read from the storage unit 5, to the computerinterface unit 7.

FIG. 6 shows examples of a unit (hereinafter called a “session”) formedby combining the above-mentioned plural jobs. A copy session 501 iscontrolled by a combination of the image input job 411 and the imageoutput job 401. A PDL print session 502 is controlled by a combinationof the image input job 412 and the image output job 401. A facsimilereception session 503 is controlled by a combination of the image inputjob 413 and the image output job 401. A printer session 504 iscontrolled by a combination of the image input job 414 and the imageoutput job 401. A facsimile transmission session 505 is controlled by acombination of the image input job 411 and the image output job 403. Ascan session 506 is controlled by a combination of the image input job411 and the image output job 404. A facsimile modem reception session507 is controlled by a combination of the image input job 413 and theimage output job 404. A facsimile modem transmission session 508 iscontrolled by a combination of the image input job 414 and the imageoutput job 403.

A session, thus, is a control unit containing at least one job, and asession may be constituted for example by image input job 412, imageoutput job 401, or a combination of image input job 412, image outputjob 401 and image output job 403.

FIG. 7 shows an example of the system configuration of a host computerto be employed as the client computer 13 shown in FIG. 1. The clientcomputer 13 is featured by the algorithm of the software functioningthereon, of which behavior will be explained later.

Referring to FIG. 6, a host computer 2400 is provided with a CPU 2401for executing document processing mixedly containing graphics, images,characters and tables (including table calculations) based for exampleon a document processing program stored in a program ROM contained in aROM 2403, and comprehensively controls various devices connected to asystem bus 2413. The program ROM contained in the ROM 2403 stores forexample a control program for the CPU 2401. A RAM 2402 functions as amain memory and a work area for the CPU 2401.

A keyboard controller (KBC) 2405 controls key input from a keyboard 2409and a pointing device (not shown). A CRT controller (CRTC) 2406 controlsthe display on a CRT display 2410.

A disk controller (DKC) 2407 controls access to an external storagedevice 2411 such as a hard disk (HD) or a floppy disk (FD) for storing aboot program, various applications, font data, user files, editing filesetc. A network interface (I/F) 2408 executes a communication controlprocess with other host computers or with various input/output devicesthrough the network 11.

The CPU 2401 executes development (rasterization) of the displayinformation for example set on the RAM 2402 into outline font on theRAM, thereby enabling WYSIWYG (what you see is what you get) operation.Also, the CPU 2401 opens various windows based on a command designatedfor example by a mouse cursor (not shown) on the CRT 2410 and executesvarious data processings.

FIG. 8 shows an example of the system configuration of a host computeremployed similarly to the lookup server computer 14. The lookup servercomputer 14 can have the well-known hardware configuration of ageneral-purpose computer, and the featuring function is achieved by thealgorithm of the software functioning thereon. For example, suchsoftware can function on the hardware of the dispersed objectenvironment-adapted image input/output apparatus 12, and, in such case,the dispersed object environment-adapted image input/output apparatus 12serves also as the lookup server 14. The behavior of the software willbe explained later.

Referring to FIG. 8, a host computer 2500 is provided with a CPU 2501for executing processes based for example on a program stored in aprogram ROM contained in a ROM 2503, and comprehensively controlsvarious devices connected to a system bus 2513. A RAM 2502 functions asa main memory and a work area for the CPU 2501. A keyboard controller(KBC) 2505 controls key input from a keyboard 2509 and a pointing device(not shown). A CRT controller (CRTC) 2506 controls the display on a CRTdisplay 2510. A disk controller (DKC) 2507 controls access to anexternal storage device 2511 such as a hard disk (HD) or a floppy disk(FD) for storing a boot program, various applications, font data, userfiles, editing files etc. A network interface 2508 executes acommunication control process with other host computers or with variousinput/output devices through the network 11.

In the following there will be briefly explained the dispersed objectsystem of the present embodiment. In the present embodiment, there isemployed a dispersed object system similar to the configuration Jinibased on Java.

The memory 124 in the core unit 10 shown in FIG. 4 stores a plurality ofservice objects, each constituting a software unit for utilizing, as aservice, the function of the apparatus realized by each session shown inFIG. 6. Such service objects are constituted respectively correspondingto the services provided by the dispersed object environment-adaptedimage input/output apparatus 12, such as the PDL printing, imageprinting, image scanning, facsimile transmission, facsimile reception,data accumulation, apparatus management, job management, etc.

The service object is a software configuration called an “object” in theknown object-oriented technology, and is provided with an interface forproviding the client with a function and a substance for realizing thefunction, requested through the interface, by the control of theapparatus. In particular, the service object in the present embodimentis an object in the known dispersed object technology, and is soconstructed that the service is available by calling the above-mentionedinterface not only from client software provided in the local memoryspace of the apparatus but also from client software provided in amemory space of a remote external apparatus (for example the clientcomputer 13) through the network 11.

In the following there will now be explained the various preferredembodiments of the present invention.

FIRST EMBODIMENT

At first there will be explained the schematic configuration of theservice object for providing the client with the services, in first tothird embodiments of the present invention. FIGS. 9A and 9B conceptuallyshow the configuration of a data accumulation service object, which isone of the service objects.

FIG. 9A shows a general object-oriented system in which a clientsoftware 702 utilizes an interface 705 from the space of the memory 124in the apparatus.

A data accumulation service object 703 provides an interface 705 whichthe client uses for utilizing the storage unit 5 in the apparatus as asecondary storage device. The interface 705 is provided with aninterface defined by a group of operations (operations 1, 2, 3, 4, . . .) provided by the known general file system, such as “open” forgenerating a file to be stored in the storage unit 5 or obtaining adescriptor for accessing to an already generated file, “close” fordeclaring the completion of access to the file, “read” for reading datafrom a file, “write” for writing data into a file, “unlink” for deletinga file, etc.

When each operation defined by the interface 705 is called, there isactivated apparatus control software 704 providing a substancecorresponding to the interface 705. As a result, the CPU 123 controlsthe storage unit 5 so as to realize a predetermined functioncorresponding to each operation.

The foregoing describes the behavior of the general object-orientedsystem in which the client software utilizes the interface from thespace of the internal memory 124 of the apparatus. Also, as shown inFIG. 9B, the service object of the dispersed object system of thepresent embodiment provides a service interface to client software inthe memory space of a remote apparatus, through the dispersed linkage ofa service proxy object 713, provided in the memory space of anotherremote apparatus (for example, the client computer 13) and a servicemount object 723 provided in the internal memory space of the apparatus.

A data accumulation service proxy object 713 provides an interface 715which the client uses for utilizing the storage unit 5 in the apparatusas a secondary storage device. The interface 715 is provided with aninterface same as explained in the foregoing, including for example“open” for generating a file to be stored in the storage unit 5 orobtaining a descriptor for accessing to an already generated file,“close” for declaring the completion of access to the file, “read” forreading data from a file, “write” for writing data into a file, “unlink”for deleting a file, etc.

When each operation defined by the interface 715 is called by the clientin the memory space of the remote apparatus, there is activated softwarefor transferring such operation calling request to the apparatus throughthe network 11. According to such software, the CPU (for example 2401)of the remote apparatus encodes the identifier for identifying therequested operation and the data structure transferred as an argument tothe request, into a byte train that can be transmitted through thenetwork 11. Such encoding process is called marshalling or serializing,and can be realizes by certain known technologies.

Then the CPU of the remote apparatus transmits the encoded byte train tothe apparatus 12 through the network 11. Such communication is executedby a protocol such as IIOP of OMG (Object-oriented Management Group) orRMI of SUN (Stanford University Network).

In the local memory space of the apparatus 12, a software generallycalled an object request broker 722 constantly monitors the reception ofrequest data from the network 11. Upon receiving the byte train of therequest data from the network 11, the object request broker 722 decodesthe byte train to restore the original object operation call and thedata structure to be transferred thereto as the argument, therebycalling a corresponding operation of the service mount object 723. Thus,there is activated a control software providing the mount correspondingto the interface 725. As a result, the CCPU 123 control the storage unit5 thereby realizing the predetermined function corresponding to eachoperation.

In the foregoing description, the client software 712 need not beprogrammed in consideration of a fact that the service mount object 723realizing the service of the apparatus 12 exists in another memory spacepresent across the network 11. Stated differently, since the encodingprocess for the operation call and the communication process through thenetwork are concealed in the service proxy object 713, the clientsoftware 712 can easily utilize the service in the same manner as theservice object is present in its own memory space. Such equivalence ofthe network to the programmer of the client software 712 is one of theimportant advantages of the dispersed object environment.

Also, the encoding and communication process executed by the serviceproxy object 713 in the foregoing description is based on apredetermined encoding algorithm and a predetermined communicationprotocol. Stated differently, these processes can be strictly defined,independently of the interface, which is variable depending on eachservice object. More specifically, it is possible mechanically togenerate the program of the service proxy object 713 by means of acompiler provided by the dispersed object environment (generally calledan “IDL compiler”) by reading a description strictly defining theinterface of the service as data and executing interpretation andconversion processes. Another important advantage of the dispersedobject environment is that the programmer constructing the system caneasily obtain the program of the service proxy object 713, utilizing theIDL (integrated data oriented language) as a tool.

In the following, there will be explained the function of a systemconsisting of the client computer 13, the lookup server 14 and thedispersed object environment-adapted image input/output apparatus 12,with emphasis on the function of the lookup server 14.

FIG. 10 shows the process of uploading the service proxy object from thedispersed object environment-adapted image input/output apparatus 12 ofa unit of peripheral equipment to the lookup server 14. At first, thedispersed object environment-adapted image input/output apparatus 12, atthe timing of connection to the network 11, emits a broadcast packetinquiring whether the lookup server 14 is present to the network 11(step S01).

Receiving the broadcast packet, the lookup server 14 informs thepresence thereof to the dispersed object environment-adapted imageinput/output apparatus 12 (step S02).

Then the dispersed object environment-adapted image input/outputapparatus 12 registers a driver 617 in the discovered lookup server 14.More specifically, the dispersed object environment-adapted imageinput/output apparatuses 12-1, 12-2 connected to the network 11respectively register the service proxy objects 617-1, 617-2 in thelookup server 14 (step S03).

In the lookup server 14, the registered service proxy object is managedtogether with attribute information such as the date of registration,service name (name of peripheral equipment), service specifications(service content), service location, etc., as shown in FIG. 12. Thevarious types of registered attribute information follow the standardscheme established by the Jini community for each service category suchas printer or storage. Also, independent information specific to theservice may also be registered as an attribute in the lookup server 14.The lookup server 14 is so constructed as to reply the attributes of theregistered service in response to the inquiry from the client software.

FIG. 11 shows a process of downloading a service proxy object from thelookup server 14 to the client computer 13. In a case the where clientcomputer 13 utilizes the dispersed object environment-adapted imageinput/output apparatus 12, the client computer 13 at first checks theservice proxy objects present in the lookup server 14 corresponding tothe services (step S1). Then the client computer 13 downloads a desiredservice proxy object from the lookup server 14 (step S2), andcommunicates with the dispersed object environment-adapted imageinput/output apparatus 12, providing the desired service (step S3).

More specifically, in the case of a request such as “receiving a printservice” or “receiving a scanning service”, the client computer 13confirms the registered services by looking at a management table 1801of the lookup server 14 as shown in FIG. 12 and downloads the desiredservice from the lookup server 14.

The dispersed object system of the present embodiment adopts a model inwhich the use right of a service is leased to the client for apredetermined term. More specifically, the dispersed objectenvironment-adapted image input/output apparatus 12 registers itspresence in the lookup server 14 utilizing the service thereof, and aneffective term is defined also on such registration. The registrationexpires after a certain period unless the registration is periodicallyrepeated, and the mechanism of such expiration allows one to avoid thedrawback that the ineffective information might otherwise continue to beregistered in the lookup server 14 in a case where the serverconstituting the client thereof loses its function, for example, due toa failure in the system.

FIG. 13 is a flow chart showing a service evaluating process executed bythe CPU 2501 of the lookup server 14 in the first embodiment of thepresent invention. The CPU 2501 evaluates the registered information byperiodically repeating the service evaluating process, utilizing a timerprocess based on a timer (not shown).

For the purpose of simplicity, the lookup server 14 of the presentembodiment is assumed to be a lookup server exclusively registering theinformation of a storage service for providing the client with atemporary secondary storage function. The process of the present flowchart is executed parallel to other processes of the lookup server, by atime-shared process of the CPU 2501 of the lookup server 14. The processof the present flow chart is executed, in the lookup server 14, as apseudo-client utilizing the lookup server 14 itself and the servicesregistered therein.

When the service evaluating process is started, a service is selected(step S11) from the list of the services registered in the managementtable 1801 as shown in FIG. 12.

The present service evaluating process is terminated if in the next stepS12 it is identified that no service is registered in the managementtable 1801 or that all the registered services have been evaluated.Otherwise, in step S113 the service proxy object of the selectedregistered service is obtained. The service proxy object is downloadedin the same manner as in the process of the ordinary client, asexplained in relation to FIG. 11.

Then, in step S14, the current time is obtained from a timer (not shown)to start the measurement of the time required for the process, and instep S115, an “open” operation is called from the interface 715 of theservice proxy object 713 shown in FIG. 9B in the same manner as executedby the ordinary client, thereby opening a file. In step S16 a “write”operation of the service proxy object 713 is called and test data,prepared in advance, is written in the file. In the next step (S17), a“read” operation of the service proxy object 713 is called, and the datawritten into the file in the preceding step S16 is read. Then in stepS18 a “close” operation of the service proxy object 713 is called,thereby closing the file. Then in step S19 the current time is obtainedfrom the aforementioned timer (not shown), and the time required for theserial process is ascertained from the difference between the timeobtained in step S14 and the current time. In step S20 there is added,to the management table 1801 shown in FIG. 12, the required time(hereinafter represented as response time) obtained in preceding stepS119 as one of the registered attributes for the contemplated service.

The sequence then returns to step S11 for repeating the above-describedprocess for each of all the registered services.

The response time, obtained as the result of evaluation and added as theattribute information to the management table 1801 in the course of theservice evaluating process can be replied, similarly to other attributesin the management table 1801, in response to the inquiry from theclient.

In the present, first embodiment, as explained in the foregoing, thelookup server 14 tries, as a client, each of the services registeredtherein and can transmits the information of the response time to theclient. As a result, based on the response time information, the clientcan estimate the performance of such service and that of the network 11for such service and can thus select the optimum service based on theobjective evaluation by the lookup server 14.

The management table 1801 may contain not only the recent response timebut also the history of the past several times, or the combination of abest value and a worst value. Also, the response time information may besuitably normalized to provide the client with an index of the serviceperformance ranked for example as A, B, C, . . . .

The lookup server 14 in the first embodiment of the present inventionexecutes, in addition to the trial and evaluation of the service by theservice evaluating process shown in FIG. 13 and the process of replyingthe result of evaluation to the client, a renewal process for theregistered information based on the result of evaluation.

FIG. 14 is a flow chart showing the procedure of a service registrationrenewal process executed by the CPU 2501 of the lookup server 14 in thefirst embodiment of the present invention. The CPU 2501 renews theregistered information by periodically repeating the serviceregistration renewal process, based on a timer process utilizing a timer(not shown). The process of the present flow chart is executed inparallel with other processes of the lookup server by a time-sharedprocess of the CPU 2501 of the lookup server 14.

When the service registration renewal process is started, a service isselected from the list of the services registered in the managementtable 1801 as shown in FIG. 12 (step S21).

The present service registration renewal process is terminated in a casein which, in the a step S22, it is identified that no service isregistered in the management table 1801 or that all the registeredservices have been renewed. Otherwise, in step S23, the registrationtime attribute (time of latest lease) of the service is read from themanagement table 1801. In step S24, a discrimination is made as towhether the difference between the current time and the registrationtime exceeds the lease term, and, if not, the sequence proceeds to stepS25, but otherwise, to step S27.

In step S25 there is read, from the management table 1801, the responsetime attribute of the service obtained by the recent service evaluatingprocess, and in step S26 the obtained response time is compared with apredetermined reference, and, if the performance is equal to or higherthan the reference, the sequence returns to step S21 to repeat theforegoing process to all the registered services. If the performance isless than the reference, the sequence proceeds to step S27.

In step S27 the registration of the service is deleted from themanagement table 1801. Thereafter the sequence returns to step S21 torepeat the foregoing process for all of the registered services.

In the present first embodiment, as explained in the foregoing, thelookup server 14 tries, as a client, each of the services registeredtherein and forcedly deletes the registration of the service in a casewhere the evaluation based on the response time information does notmeet a certain standard. In this manner the lookup server 14 can make aneffort to guarantee the quality in performance of the registeredservice. As a result, the client can select an appropriate service,expecting that the services registered in the lookup server 14 are ofhigher quality on average, in comparison with the services registered inanother lookup server that is not executing such process.

SECOND EMBODIMENT

FIG. 15 is a flow chart showing the sequence of a service evaluatingprocess executed by the CPU 2501 of the lookup server 14 in a secondembodiment of the present invention. The CPU 2501 renews the registeredinformation by periodically repeating the service evaluating process,utilizing a timer process based on a timer (not shown).

For the purpose of simplicity, the lookup server 14 of the presentembodiment is assumed to be a lookup server exclusively registering theinformation of a storage service for providing the client with atemporary secondary storage function. The process of the present flowchart is executed on parallel with other processes of the lookup server,by means of a time-shared process of the CPU 2501 of the lookup server14. The process of the present flow chart is executed, in the lookupserver 14, as a pseudo-client utilizing the lookup server 14 itself andthe services registered therein.

When the service evaluating process is started, a service is selectedfrom the list of the services registered in the management table 1801 asshown in FIG. 129 step S31). The present service evaluating process isterminated if in the next step S32 it is identified that no service isregistered in the management table 1801 or that all the registeredservices have been evaluated. Otherwise, in step S33 there is obtainedthe service proxy object 713 of the selected registered service. Theservice proxy object 713 is downloaded in the same manner as in theprocess of the ordinary client.

Then in step S34 an “open” operation is called from the interface 715 ofthe service proxy object 713 in the same manner as executed by theordinary client, thereby opening a file. Then in step S35 a “write”operation of the service proxy object 713 is called and test data,prepared in advance, is written in the file. In the next step S36 a“read” operation of the service proxy object 713 is called, and the datawritten into the file in the preceding step S35 is read. Then in stepS37 a “close” operation of the service proxy object 713 is called,thereby closing the file.

Then in step S38 the data written in step S35 is compared with the dataread in step S36, and, if there is a difference therebetween, that factis identified as an error, and an increment is made on a countindicating the level of abnormality (hereinafter termed an “abnormalitycount”) in an internal counter (not shown). Also, in a case where theresult of operation called in each of the foregoing steps indicates anabnormal result such as “busy”, the number of such abnormal result isadded to the aforementioned abnormal count. If all the steps arecompleted in the normal manner, on the other hand, an increment is madeon a count indicating the level of normality (hereinafter termed a“normality count”) in an internal counter (not shown).

The sequence then returns to step S31 to repeat the above-describedprocess for each of all the registered services.

The values of the aforementioned abnormality count and normality count,obtained as the result of evaluation and added as the attributeinformation to the management table 1801 in the course of the serviceevaluating process, can be provided, similarly to other attributes inthe management table 1801, in response to the inquiry from the client.

In the present embodiment, the presence of error is discriminated bylimiting the service to storage and executing an access test to thefile, but, in more general manner, the presence of error(s) may bediscriminated by calling an operation for executing a “self test”operation or the like provided in all the services.

In the present second embodiment, as explained in the foregoing, thelookup server 14 tries, as a client, each of the services registeredtherein and can transmit the information on the presence or absence oferror to the client. As a result, based on such error information, theclient can estimate the reliability of such service and that of thenetwork 11 for reaching such service and can thus select the optimumservice based on the objective evaluation by the lookup server 14.

It is also possible to execute maintenance of the registered informationbased on the reliability of the service, by combining the lookup server14 of the present embodiment with a service registration renewal processsimilar to that shown in FIG. 14. In such configuration of the presentembodiment, the lookup server 14 tries, as a client, each of theservices registered therein and forcedly deletes the registration of theservice in a case where the evaluation based on the presence or absenceof the error does not meet a certain standard. In this manner the lookupserver 14 can make an effort to guarantee the quality in reliability ofthe registered service. As a result, the client can select anappropriate service, expecting that the services registered in thelookup server 14 are of higher quality on average, in comparison withthe services registered in another lookup server that is not executingsuch process.

THIRD EMBODIMENT

FIG. 16 is a flow chart showing the sequence of a service evaluatingprocess executed by the CPU 2501 of the lookup server 14 in a thirdembodiment of the present invention. The CPU 2501 renews the registeredinformation by periodically repeating the service evaluating process,utilizing a timer process based on a timer (not shown).

For the purpose of simplicity, the lookup server 14 of the presentembodiment is assumed as a lookup server exclusively registering theinformation of a printing service. The process of the present flow chartis executed in parallel with other processes of the lookup server, by atime-shared process of the CPU 2501 of the lookup server 14. The processof the present flow chart is executed, in the lookup server 14, as apseudo-client utilizing the lookup server 14 itself and the servicesregistered therein.

When the service evaluating process is started, a service is selected instep S41 from the list of the services registered in the managementtable 1801 as shown in FIG. 12. The present service evaluating processis terminated if in the next step S42 it is identified that no serviceis registered in the management table 1801 or that all the registeredservices have been evaluated. Otherwise, in step S43 there is obtainedthe service proxy object 713 of the selected registered service. Theservice proxy object 713 is downloaded in the same manner as in theprocess of the ordinary client.

Then in step S44 a state obtaining operation is called from theinterface 715 of the service proxy object 713 in the same manner asexecuted by the ordinary client, thereby obtaining dynamic stateinformation of the printer unit 2. Then in step S45 the stateinformation obtained in the preceding step S44 is evaluated according toa predetermined algorithm. This algorithm is defined by an evaluatingfunction of a wide sense, for example providing a significant negativepoint for example if the color toners or inks are exhausted in a colorprinter, and a negative point for example if a large-sized printingsheet is exhausted in a large-sized printer.

Then in step S46 there is added, to the management table 1801, theresults of evaluation (for example the negative point) as an attributeof the service. Step S46 may include appropriate reforming the lateststate information of the apparatus obtained in step S44 and adding suchinformation as one of the registered attributes of the service to themanagement table 1801. The sequence then returns to step S41 forrepeating the above-described process for each of all the registeredservices.

The result of the above-described evaluation, added as the attributeinformation to the management table 1801 in the course of the serviceevaluating process, can be provided, similarly to other attributes inthe management table 1801, in response to the inquiry from the client.

In the present third embodiment, as explained in the foregoing, thelookup server 14 tries, as a client, each of the services registeredtherein and can transmit the evaluation based on the dynamic state (anddynamic state information itself) to the client. As a result, the clientcan know the important state information relating to the service and theevaluation thereof prior to the selection of a service and thedownloading of the proxy object thereof, and can thus select the optimumservice.

It is also possible to execute maintenance of the registered informationbased on the reliability of the service, by combining the lookup server14 of the present embodiment with a service registration renewal processsimilar to that shown in FIG. 14. In such configuration of the presentembodiment, the lookup server 14 tries, as a client, each of theservices registered therein and forcedly deletes the registration of theservice in a case where the evaluation based on the reliability does notmeet a certain standard. In this manner the lookup server 14 can make aneffort to guarantee the quality of the registered service, based on thedynamic state thereof. As a result, the client can select an appropriateservice, expecting that the services registered in the lookup server 14are of higher quality on average, in comparison with the servicesregistered in another lookup server that is not executing such process.

FOURTH EMBODIMENT

FIG. 17 schematically shows a software configuration in fourth toseventh embodiments of the present invention to be explained in thefollowing, wherein the dispersed object environment-adapted imageinput/output apparatuses 12-1 and 12-2 connected to the network 11constitute a pair in which each function as the client of the servicesof the other and try such services of the other. In FIG. 17, componentsequivalent to those in FIGS. 9A and 9B are represented by correspondingnumbers.

As shown in FIG. 17, the dispersed object environment-adapted imageinput/output apparatuses 12-1, 12-2 have similar software configurationsin which the object request broker 722 of either apparatus is connectedwith the service proxy object 713 of the other apparatus through thenetwork 11.

FIG. 18 is a flow chart showing the sequence of a service evaluatingprocess, executed by each of the CPUs 123 of the dispersed objectenvironment-adapted image input/output apparatuses 12-1, 12-2 of thefourth embodiment of the present invention, on the services of theother. The CPU 123 evaluates the quality of the service of the otherapparatus by periodically repeating the present service evaluatingprocess by a timer process based on a timer (not shown).

For the purpose of simplicity, the present embodiment deals, among theservices provided by the dispersed object environment-adapted imageinput/output apparatuses 12, with the storage service of providing theclient with the temporary secondary storage function. The process of thepresent flow chart is executed, by a time-shared process of the CPU 123of the dispersed object environment-adapted image input/output apparatus12, in parallel with other processes required in the apparatus. Theprocess of the present flow chart is executed as a pseudo-client in thedispersed object environment-adapted image input/output apparatus 12,utilizing the services of the other image input/output apparatus 12.

When the service evaluating process is started, in step S51 there isobtained the service proxy object 713 of the other from the lookupserver 14. The service proxy object 713 is downloaded in the same manneras in the process of the ordinary client.

Then in step S53 a “write” operation of the service proxy object 713 iscalled, and test data, prepared in advance, is written in the file. inthe next step S54 a “read” operation of the service proxy object 713 iscalled, and the data written into the file in the preceding step S53 isread. Then in step S55 a “close” operation of the service proxy objectis called, thereby closing the file.

Then in step S56 the data written into the file in the foregoing stepS53 is compared with the data read in step S54, and, if there is adifference therebetween, the sequence proceeds to step S57. Also, in acase where the result of operation in each of the foregoing stepsindicates an abnormal value such as “busy” or expiration of responsetime, the sequence proceeds to step S57. On the other hand, if all thesteps are completed in normal manner, then in step S56 the presentservice evaluating process is terminated.

In step S57 a forced service registration deleting process of the lookupserver 14 is called, so as to delete the registration of the service ofthe other, on which the abnormality is observed, from the lookup server14. The present service evaluating process is thereafter terminated.

In the present embodiment, the presence of an error is discriminated bylimiting the service to storage 5 and executing an access test of accessto the file, but, in more general manner, the presence of error may bediscriminated by calling an operation for executing a “self test”operation or the like provided in all the services.

In the present fourth embodiment, as explained in the foregoing, each ofthe plural dispersed object environment-adapted image input/outputapparatuses 12 mutually tries the services of the other and, in the caseof the detection of an abnormality, the deletion of the registration ofthe abnormal service can be promptly instructed to the lookup server 14.It is rendered possible to shorten the time of continued registration ofan ineffective service in the lookup server 14 and to reduce the dangerthat the client may try to utilize an ineffective service.

FIFTH EMBODIMENT

FIG. 19 is a flow chart showing the sequence of a service evaluatingprocess in a fifth embodiment of the present invention, executedrespectively by each of the CPUs 123 of the dispersed objectenvironment-adapted image input/output apparatuses 12, on the service ofthe other of paired apparatuses. The CPU 123 evaluates the quality ofthe service of the other apparatus by periodically repeating the presentservice evaluating process by a timer process based on a timer (notshown).

For the purpose of simplicity, the present embodiment deals, among theservices provided by the dispersed object environment-adapted imageinput/output apparatuses 12, with the storage service of providing theclient with the temporary secondary storage function. The process of thepresent flow chart is executed, by a time-shared process of the CPU 123of the dispersed object environment-adapted image input/output apparatus12, in parallel with other processes required in the apparatus. Theprocess of the present flow chart is executed as a pseudo-client in thedispersed object environment-adapted image input/output apparatus 12,utilizing the services of the other image input/output apparatus 12.

When the service evaluating process is started, in step S61 the serviceproxy object 713 of the other is obtained from the lookup server 14. Theservice proxy object 713 is downloaded in the same manner as in theprocess of the ordinary client. Then in step S62 an “open” operation iscalled from the interface of the service proxy object 713 in the samemanner as executed by the ordinary client, thereby opening a file.

Then in step S63 a “write” operation of the service proxy object 713 iscalled, and test data, prepared in advance, is written in the file. inthe next step S64 is called a “read” operation of the service proxyobject 713 and the data written into the file in the preceding step S63is read. Then in step S65 is called a “close” operation of the serviceproxy object 713, thereby closing the file. Then in step S66 acomparison is made of the data written into the file in the foregoingstep S63 with the data read in step S64, and, if there is a differencetherebetween, the sequence proceeds to step S67. Also, in a case wherethe result of operation in each of the foregoing steps indicates anabnormal value such as “busy” or expiration of response time, thesequence proceeds to step S67.

On the other hand, if all the steps are completed in normal manner, thenin step S66 the present service evaluating process is terminated.

In step S67 a service transfer instructing process of the lookup server14 is called so as to introduce a service provided by the apparatusitself as a proxy for the service of the other, in which the abnormalityis observed, and the present service evaluating process is thereafterterminated.

When the above-mentioned service transfer instructing operation iscalled, the lookup server 14 sets the identification information of thedesignated transfer service, as a substitute attribute in the record ofthe corresponding service in the management table 1801 shown in FIG. 12.

In the present embodiment, the presence of an error is discriminated bylimiting the service to the storage unit 5 and executing an access testof access to the file, but, in more general manner, the presence oferror may be discriminated by calling an operation for executing a “selftest” operation or the like provided in all the services.

FIG. 20 is a flow chart showing the sequence of a response process to arequest for obtaining the service proxy object, to be executed by theCPU 2501 of the lookup server 14 in the fifth embodiment of the presentinvention, at the reception from the client of a request for downloadingof the service proxy object 713.

At first, in step S71 a search is made, in the management table 1801shown in FIG. 12, for a record corresponding to the service designatedby the client. In the next step S72 it is discriminated whether asubstitute attribute is set in the searched record, and, if not, thesequence proceeds to step S73, but, if set, the sequence proceeds tostep S74.

In step S73 the service proxy object of the designated service istransmitted to the client. In step S74 there is transmitted, to theclient, the service proxy object of a substitute service designated bythe identification information set in the substitute attribute.

In the present fifth embodiment, as explained in the foregoing, each ofthe plural dispersed object environment-adapted image input/outputapparatuses 12 mutually tries the services of the other and, in case ofthe detection of an abnormality, the lookup server 14 can be promptlyinstructed to transfer the request of the client for an abnormal serviceto the service of the normal side. It is thus rendered possible toshorten the time of continued registration of an ineffective service inthe lookup server 14 and thus to reduce the danger that the client maytry to utilize an ineffective service. Also, the client wishing toutilize the ineffective service is automatically given an equivalentsubstitute service, whereby the usability of such service can beimproved.

SIXTH EMBODIMENT

FIG. 21 is a flow chart showing the sequence of a service evaluatingprocess in a sixth embodiment of the present invention, executedrespectively by each of the CPUs 123 of the dispersed objectenvironment-adapted image input/output apparatuses 12, on the service ofthe other of paired apparatuses. The CPU 123 evaluates the quality ofthe service of the other apparatus by periodically repeating the presentservice evaluating process by a timer process based on a timer (notshown).

For the purpose of simplicity, the present embodiment deals, among theservices provided by the dispersed object environment-adapted imageinput/output apparatuses 12, with the storage service of providing theclient with the temporary secondary storage function. The process of thepresent flow chart is executed, by a time-shared process of the CPU 123of the dispersed object environment-adapted image input/output apparatus12, in parallel with other processes required in the apparatus. Theprocess of the present flow chart is executed as a pseudo-client in thedispersed object environment-adapted image input/output apparatus 12,utilizing the services of the other image input/output apparatus 12.

When the service evaluating process is started, in step S81 the serviceproxy object 713 of the other is obtained from the lookup server 14. Theservice proxy object 713 is downloaded in the same manner as in theprocess of the ordinary client. Then in step S82 the current time isobtained from a timer (not shown), thereby starting to measure the timerequired for the following process. Then in step S83 is called an “open”operation from the interface 715 of the service proxy object 713 in thesame manner as executed by the ordinary client, thereby opening a file.

Then in step S84 a “write” operation of the service proxy object 713 iscalled, and test data, prepared in advance, is written in the file. Inthe next step S85 is called a “read” operation of the service proxyobject 713, and the data written into the file in the preceding step S84is read. Then in step S86 is called a “close” operation of the serviceproxy object 713, thereby closing the file.

Then in step S87 is obtained the current time from the aforementionedtimer (not shown), and the time required for the process is obtained,based on the difference from the time obtained in step S82. Then in stepS88 is compared such required time with a predetermined reference time,thereby discriminating whether predetermined performance is achieved. Ifthe desired level of performance is achieved, the present serviceevaluating process is terminated.

If the predetermined performance is not achieved, the sequence proceedsto step S89, where there is called a service transfer instructingoperation in order to introduce, to the client, a service provided byitself as a substitute for the service of the other, which is notachieving the predetermined performance, whereupon the present serviceevaluating process is terminated.

When the above-mentioned service transfer instructing operation iscalled, the lookup server 14 sets the identification information of thedesignated transfer service, as a substitute attribute in the record ofthe corresponding service in the management table 1801 shown in FIG. 12.

As in the foregoing sixth embodiment, the CPU 2501 of the lookup server14 of the present embodiment executes a response process for thesubstitute object obtaining request as shown in FIG. 20, upon receivingthe request for downloading the service proxy object from the clientshown in FIG. 20.

In the present sixth embodiment, as explained in the foregoing, each ofthe paired dispersed object environment-adapted image input/outputapparatuses 12 mutually tries the services of the other and, in case ofthe detection of a loss in the service performance of the other, thelookup server 14 can be promptly so instructed as to transfer therequest of the client for a service of the other to a service of the ownside. In a case where such loss in the performance indicates anabnormality in the service of the other, there can be obtainedadvantages similar to those in the fifth embodiment. Also, in a casewhere such loss in the performance is a normal occurrence resulting fromthe concentration of loads, the request for the service of the otherwhich is under a highly loaded situation can be shifted to the serviceof the first apparatus itself, whereby the loads can be dispersedbetween the paired apparatuses and a very simple load balancing can berealized in a simple manner. In the latter situation, the service of theother sooner or later renews the registration in the lookup server 14prior to the expiration of the lease term, whereupon the setting fortransfer to the substitute service is canceled.

The performance of the service of the other apparatus may be evaluatednot only by the latest response time but also by the history of the pastseveral results, or by the average thereof, or by the best and worstvalues.

SEVENTH EMBODIMENT

FIG. 22 is a flow chart showing the sequence of a service evaluatingprocess in a seventh embodiment of the present invention, executedrespectively by each of the CPUs 123 of the dispersed objectenvironment-adapted image input/output apparatuses 12, on the service ofthe other of paired apparatuses. The CPU 123 evaluates the quality ofthe service of the other apparatus by periodically repeating the presentservice evaluating process by a timer process based on a timer (notshown).

For the purpose of simplicity, the present embodiment deals, among theservices provided by the dispersed object environment-adapted imageinput/output apparatuses 12, with the printing service of providing theclient with the printing function. The process of the present flow chartis executed, by a time-shared process of the CPU 123 of the dispersedobject environment-adapted image input/output apparatus 12, in parallelwith other processes required in the apparatus. The process of thepresent flow chart is executed as a pseudo-client in the dispersedobject environment-adapted image input/output apparatus 12, utilizingthe services of the other image input/output apparatus 12.

When the service evaluating process is started, in step S91 the serviceproxy object 713 of the other is obtained from the lookup server 14. Theservice proxy object 713 is downloaded in the same manner as in theprocess of the ordinary client.

Then in step S92 is called a state obtaining operation from theinterface 715 of the service proxy object 713, thereby obtaining thedynamic state information of the printer. In step S93 is evaluated thestate information obtained in the preceding step S92, based on apredetermined algorithm. Such algorithm can be defined by an evaluationfunction of a wide sense, providing a significant negative point forexample for a case of exhaustion of the color toner or ink in a colorprinter, and a negative point for exhaustion of a large-sized printingsheet in a large-sized printer.

In the next step S94 a comparison is made of the result of evaluation(for example a negative point) in the above-mentioned step S93 with apredetermined reference value, thereby discriminating whether apredetermined evaluation is obtained. If such has been obtained, thepresent service evaluating process is terminated.

On the other hand, if the predetermined evaluation is not obtained, thesequence proceeds to step S95 in which is called a service transferinstructing operation of the lookup server 14 in order to introduce aservice provided by the apparatus itself to the client, as a substitutefor the service of the other apparatus, which is failing to provide thepredetermined evaluation, and the present service evaluating process isthereafter terminated.

When the above-mentioned service transfer instructing operation iscalled, the lookup server 14 sets the identification information of thedesignated transfer service, as a substitute attribute in the record ofthe corresponding service in the management table 1801 shown in FIG. 12.

In the present seventh embodiment, as explained in the foregoing, eachof the paired dispersed object environment-adapted image input/outputapparatuses 12 mutually tries the services of the other and, in case ofthe detection of a loss in the practical quality of the service of theother by a dynamically changing state (in particular by the shortage ofa consumable resource in the apparatus), the deletion of theregistration of the abnormal service can be promptly notified to thelookup server 14. It is thus rendered possible to shorten the time ofcontinued registration of an ineffective service in the lookup server 14and to reduce the danger that the client may try to utilize anineffective service.

OTHER EMBODIMENTS

The present invention may be applied to a system consisting of pluralpieces of equipment (for example a host computer, an interface device, areader, a printer, etc.) or to an apparatus consisting of a single unitof equipment (for example, a copying apparatus or a facsimileapparatus).

Also, the objects of the present invention can naturally be attained bysupplying a system or an apparatus with a recording medium (memorymedium) storing program codes of a software realizing the functions ofthe aforementioned embodiments and reading and executing the programcodes stored in the recording medium by a computer (or a CPU or an MPU)of the system or the apparatus.

In such case, the program codes themselves read from the recordingmedium realize the functions of the aforementioned embodiments, and therecording medium storing the program codes constitutes the presentinvention.

The recording medium storing the program codes and also variable datasuch as a table can be, for example, a floppy disk (FD), a hard disk, anoptical disk, a magnetooptical disk, a CD-ROM, a CD-R, a magnetic tape,a non-volatile memory card (IC memory card) or a ROM.

The present invention includes not only a case where the functions ofthe aforementioned embodiments are realized by the execution of theprogram codes read by the computer but also a case where an operatingsystem or the like functioning on the computer performs all or a part ofthe actual process according to the instructions of such program codeswhereby the functions of the aforementioned embodiments are realized bysuch process.

In the directory server of the network system based on the dispersedobjects, as explained in the foregoing, the present invention allows totransmit, to the client, not only the information provided from theregistered service but also the information indicating the level ofrecommendation for the service, obtained by the directory server itselfby trying and evaluating the registered service, thereby providing adirectory server enabling the client easily to select the optimumservice.

Also, in the network system based on the dispersed objects, the presentinvention relies not only on the information provided from theregistered service but also causes the grouped apparatuses continue tomutually try and evaluate the services, thereby allowing oneautomatically to eliminate, from the directory server, the registrationof the service which becomes ineffective relatively early withoutnotification.

Furthermore, in the system including a plurality of equivalent services,the present invention allows the client automatically to select aservice substituting a failed service in a manner equivalent to theclient, thereby providing the apparatus adapted to the dispersed objectenvironment, capable of enjoying the benefit of the usability improvedby the redundant configuration, without complicating the processingrequired of the client.

Furthermore, the present invention provides the apparatus adapted to thedispersed object environment capable of realizing simple load dispersion(load balancing) based on the redundant configuration.

Furthermore, the present invention enables switching to the substituteservice based on the dynamic state change in the apparatus such asexhaustion of toner or recording sheets, thereby providing the apparatusadapted to the dispersed object environment, realizing the redundantconfiguration capable of coping with a deterioration in the practicalquality of the provided services.

1. A service management apparatus in a network system, for managingservice information of a service provided by a service apparatus andtransferring the managed service information to an external apparatus inresponse to a request from the external apparatus, said servicemanagement apparatus comprising: test means for executing a process of atrial use of the service provided by the service apparatus, wherein, inthe trial use, said test means sends data to the service by using anoperation of the service; evaluation means for evaluating the quality ofthe service, based on a result of the trial use of the service executedby said test means; and renewal means for renewing the managed serviceinformation based on the quality evaluated by said evaluation means. 2.A service management apparatus according to claim 1, wherein saidevaluation means evaluates the result of the trial use of the serviceexecuted by said test means by a predetermined evaluation function.
 3. Aservice management apparatus according to claim 2, wherein said renewalmeans deletes the managed service information in a case the evaluationby the predetermined evaluation function does not meet a predeterminedreference.
 4. A service management apparatus according to claim 2,wherein the predetermined evaluation function evaluates the quality ofthe service based on the time required for calling the service.
 5. Aservice management apparatus according to claim 2, wherein thepredetermined evaluation function evaluates the quality of the servicebased on an error frequency generated by a service calling.
 6. A servicemanagement apparatus according to claim 1, wherein: said test meansexecutes an access process for writing data to a storage service andreading data from the storage service on a trial basis; and saidevaluation means evaluates the quality of the storage service based onthe result of the access process performed by said test means.
 7. Aservice management apparatus according to claim 1, wherein saidevaluation means detects the number of colors or recording sheetsavailable in an imaging service and evaluates the quality of the servicebased on the number of colors or recording sheets available in theservice.
 8. A service management apparatus according to claim 1, whereinthe service apparatus comprises a printer.
 9. An apparatus connected toa service management apparatus for managing service information of aservice on a network system and transferring the managed serviceinformation to an external apparatus in response to a request from theexternal apparatus, said apparatus comprising: test means for executinga process of a trial use of a service of another apparatus belonging toa same group as that of said apparatus, wherein, in the trial use, theservice of the other apparatus is executed; evaluation means forevaluating the quality of the service, based on a result of the trialuse of the service executed by said test means; and deletion means forinstructing, in a case in which the quality evaluated by said evaluationmeans does not meet a predetermined reference, the service managementapparatus to delete the service information related to said apparatusand to the other apparatus from the service management apparatus.
 10. Aservice management method in a network system, for managing serviceinformation of a service provided by an apparatus and transferring themanaged service information to an external apparatus in response to arequest from the external apparatus, said service management methodcomprising: a test step of executing a process of a trial use of theservice provided by the apparatus, wherein, in the trial use, said testmeans sends data to the service by using an operation of the service; anevaluation step of evaluating the quality of the service, based on aresult of the trial use of the service executed in said test step; and arenewal step of renewing the managed service information based on thequality evaluated in said evaluation step.
 11. A service managementmethod according to claim 10, wherein said evaluation step includesevaluating the result of the trial use of the service executed in saidtest step by a predetermined evaluation function.
 12. A servicemanagement method according to claim 11, wherein said renewal stepincludes deleting the managed service information in a case theevaluation by the predetermined evaluation function does not meet apredetermined reference.
 13. A service management method according toclaim 11, wherein the predetermined evaluation function evaluates thequality of the service based on the time required for calling theservice.
 14. A service management method according to claim 11, whereinthe predetermined evaluation function evaluates the quality of theservice based on an error frequency generated by a service calling. 15.A service management method according to claim 10, wherein: said teststep includes executing an access process for writing data to a storageservice and reading data from the storage service on a trial basis; andsaid evaluation step includes evaluating the quality of the storageservice based on the result of the access process performed in said teststep.
 16. A service management method according to claim 10, whereinsaid evaluation step includes detecting the number of colors orrecording sheets available in an imaging service and evaluates thequality of the imaging service based on the number of colors orrecording sheets available in the imaging service.
 17. A servicemanagement method according to claim 10, wherein the plurality ofapparatuses includes a printer.
 18. A method for use in an apparatusconnected to a service management apparatus for managing serviceinformation of a service on a network system and transferring themanaged service information to an external apparatus in response to arequest from the external apparatus, said method comprising: a test stepof executing a process of a trial use of a service of another apparatusbelonging to a same group as that of the apparatus, wherein in the trialuse, the service of the other apparatus is executed; an evaluation stepof evaluating the quality of the service, based on a result of the trialuse of the service executed in said test step; and a deletion step ofinstructing, in a case in which the quality evaluated in said evaluationstep does not meet a predetermined reference, the service managementapparatus to delete the service information related to the apparatus andto the other apparatus from the service management apparatus.
 19. Acomputer readable storage medium storing a program for executing aservice management method in a network system, for managing serviceinformation of a service provided by an apparatus and transferring themanaged service information to an external apparatus in response to arequest from the external apparatus, said program comprising: code for atest step of executing a process of a trial use of the service providedby the apparatus, wherein, in the trial use, data are sent to theservice by using an operation of the service; code for an evaluationstep of evaluating the quality of the service, based on a result of thetrial use of the service executed by said code for a test step; and codefor a renewal step of renewing the managed service information based onthe quality evaluated by execution of said code for an evaluation step.20. A computer readable storage medium storing a program executing amethod for use in an apparatus connected to a service managementapparatus for managing service information of a service on a networksystem and transferring the managed service information to an externalapparatus in response to a request from the external apparatus, saidprogram comprising: code for a test step of executing a process of atrial use of a service of another apparatus belonging to a same group asthat of the apparatus, wherein, in the trial use, the service of theother apparatus is executed; code for an evaluation step of evaluatingthe quality of the service, based on a result of the trial use of theservice executed by said code for a test step; and code for a deletionstep of instructing, in a case in which the quality evaluated byexecution of said code for an evaluation step does not meet apredetermined reference, the service management apparatus to delete theservice information related to the apparatus and to the other apparatusfrom the service management apparatus.
 21. A service managementapparatus according to claim 1, wherein said test means, in the trialuse, sends a service request to the one service and receives a responsefrom the one service after the service executes a predetermined processin the one apparatus.
 22. A service management apparatus according toclaim 9, wherein said test means, in the trial use, sends a servicerequest to the one service and receives a response from the one serviceafter the service executes a predetermined process in the one apparatus.23. A service management method according to claim 10, wherein said teststep includes, in the trial use, sending a service request to the oneservice and receiving a response from the one service after the serviceexecutes a predetermined process in the one apparatus.
 24. A servicemanagement method according to claim 18, wherein said test stepincludes, in the trial use, sending a service request to the one serviceand receiving a response from the one service after the service executesa predetermined process in the one apparatus.